package views

import (
	"errors"
	"log"
	"net/http"
	"strconv"
	"strings"

	"gitee.com/Yu-eng/Myproject/my-go-blog/common"
	"gitee.com/Yu-eng/Myproject/my-go-blog/service"
)

func (*HTMLApi) About(w http.ResponseWriter, r *http.Request) {
	//页面模板的数据都需要定义,(假数据)
	//实现真实的数据 就需要涉及数据库的查询

	index := common.Template.Index

	//这里实现分页的功能
	//处理表单,尝试转换为表单
	if err := r.ParseForm(); err != nil {
		log.Println("表单数据获取异常！", err)
		index.WriteError(w, errors.New("系统错误，请联系管理员！"))
		return
	}
	//尝试解析表单内的数据
	pageStr := r.Form.Get("page")
	page := 1 //默认  空串时 page为1
	if pageStr != "" {
		page, _ = strconv.Atoi(pageStr)
	}
	//每页显示的数量
	pageSize := 10

	//这里处理以下slug  分隔显示文章
	path := r.URL.Path
	slug := strings.TrimPrefix(path, "/")

	//传入 页面大小 和 当前页面数 来获得index数据

	hr, err := service.GetAllIndexIndexInfo(slug, page, pageSize)
	if err != nil { //这里的错误处理 不返回给上一级 而是直接反应在网页上
		log.Println("Index获取数据出错：", err)
		index.WriteError(w, errors.New("系统错误，请联系管理员！"))
	}
	//这里在common 包下拿全局初始化好的template模板
	index.WriteData(w, hr)

}
